Criando uma Data ou Hora a partir de uma String
Para a realização de operações com data e hora como adicionar e subtrair, é necessário que a data esteja no formato de objeto LocalDate ou LocalTime. Para isto, as seguintes operações são necessárias.
Para Data:
import java.time.LocalDate;
import java.time.format.DateTimeParseException;
public class App {
public static void main(String[] args) {
String dataString = "2024-12-11"; // String no formato yyyy-MM-dd
try {
LocalDate localDate = LocalDate.parse(dataString);
System.out.println(localDate); // Exemplo: 2024-12-11
} catch (DateTimeParseException e) {
System.out.println("Erro ao converter a string para data: " + e.getMessage());
}
}
}
ou quando a data não está no formato americano yyyy-mm-dd é necessário utilizar a classe DateTimeFormatter.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class App {
public static void main(String[] args) {
// String no formato dd/MM/yyyy
String dataString = "11/12/2024";
try {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate localDate = LocalDate.parse(dataString, formatter);
System.out.println(localDate); // Exemplo: 2024-12-11
} catch (DateTimeParseException e) {
System.out.println("Erro ao converter a string para data: " + e.getMessage());
}
}
}
Para Hora:
import java.time.LocalTime;
import java.time.format.DateTimeParseException;
public class App {
public static void main(String[] args) {
String horaString = "14h30m"; // Exemplo de string no formato "HH:mm"
try {
LocalTime hora = LocalTime.parse(horaString);
System.out.println("Hora: " + hora);
} catch (DateTimeParseException e) {
System.out.println("Erro ao fazer o parsing da hora: " + e.getMessage());
}
}
}
ou quando a hora estiver no formato am/pm
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class App {
public static void main(String[] args) {
// Exemplo de string no formato "hh:mm a". O a representa o formato am/pm
String horaString = "02:30 PM";
// Definir o formato do padrão AM/PM
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm a");
try {
// Fazer o parsing da string para LocalTime
LocalTime hora = LocalTime.parse(horaString, formatter);
System.out.println("Hora: " + hora);
} catch (DateTimeParseException e) {
System.out.println("Erro ao fazer o parsing da hora: " + e.getMessage());
}
}
}
Para Data e Hora no formato padrão
import java.time.LocalDateTime;
import java.time.format.DateTimeParseException;
public class App {
public static void main(String[] args) {
// Exemplo de string no formato padrão do java "yyyy-MM-dd'T'HH:mm:ss"
String dataHoraString = "2024-12-11T14:30:00";
try {
LocalDateTime dataHora = LocalDateTime.parse(dataHoraString);
System.out.println("Data e Hora: " + dataHora);
} catch (DateTimeParseException e) {
System.out.println("Erro ao fazer o parsing da data e hora: " + e.getMessage());
}
}
}
ou para a data e hora em um formato customizado utilizando o DateTimeFormatter
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class App {
public static void main(String[] args) {
// Exemplo de string no formato customizado "yyyy-MM-dd hh:mm a"
String dataHoraString = "2024-12-11 02:30 PM";
//String dataHoraString = "2024-12-11 02:30";
// Definir o formato de data e hora com AM/PM
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm a");
// Formato de 24 horas
//DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm");
try {
// Fazer o parsing da string para LocalDateTime
LocalDateTime dataHora = LocalDateTime.parse(dataHoraString, formatter);
System.out.println("Data e Hora: " + dataHora);
} catch (DateTimeParseException e) {
System.out.println("Erro ao fazer o parsing da data e hora: " + e.getMessage());
}
}
}